package com.springapi.utils;
import java.util.List;
import java.util.Map;

public class MailfileCheckerUtil {


    /**
     * 检查 result 中的 data 数组是否有对象的 text 字段包含指定字符串。
     *
     * @param result 包含数据的 Map 对象
     * @param searchString 要搜索的字符串
     * @return 如果找到包含指定字符串的 text 字段，则返回 true；否则返回 false
     */
    public static boolean containsTextInData(Map<String, Object> result, String searchString) {
        // 从 result 中获取 data 列表
        List<?> dataList = (List<?>) result.get("data");
        if (dataList == null) {
            return false; // 如果没有 data 列表，直接返回 false
        }

        // 遍历 data 列表
        for (Object dataObj : dataList) {
            if (dataObj instanceof Map) {
                Map<?, ?> dataMap = (Map<?, ?>) dataObj;

                // 获取 text 字段的值
                String text = (String) dataMap.get("text");

                // 检查 text 是否包含指定字符串
                if (text != null && text.contains(searchString)) {
                    return true; // 如果找到，立即返回 true
                }
            }
        }

        // 如果没有找到，返回 false
        return false;
    }

    public static void main(String[] args) {
        // 示例用法
        Map<String, Object> result = Map.of(
                "code", 100,
                "data", List.of(
                        Map.of(
                                "box", List.of(
                                        List.of(63, 528),
                                        List.of(264, 508),
                                        List.of(270, 572),
                                        List.of(69, 592)
                                ),
                                "score", 0.8304689526557922,
                                "text", "韵达达",
                                "end", " "
                        ),
                        Map.of(
                                "box", List.of(
                                        List.of(97, 598),
                                        List.of(277, 584),
                                        List.of(279, 616),
                                        List.of(99, 630)
                                ),
                                "score", 0.9459789991378784,
                                "text", "2024/12/19",
                                "end", "\n"
                        )
                )
        );

        boolean containsYunda = containsTextInData(result, "韵达2");
        System.out.println("Contains '韵达' in text field: " + containsYunda);
    }
}
